<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// prototype原型对象
	// 每个函数都有一个名为prototype的属性，该属性的类型为对象，该对象被称为原型对象（显式原型对象）
	// function fn(){
	//
	// }
	// console.log(fn.prototype);// 输出函数的显式原型对象
	
	
	// constructor(构造器)
	// * 原型对象拥有constructor属性，该属性我们称其为构造器,它指向构造函数本身。
	// {
	// 	function Box(){
	//
	// 	}
	//
	// 	console.log(Box.prototype.constructor ===  Box);// true
	// }
	
	// * 给原型对象添加属性(一般都是方法)，函数的所有实例对象自动拥有原型中的属性(方法)
	// {
	// 	function Box(){
	// 		// 实例属性
	// 		this.userName = "zhangsan";
	// 		// this.run = "run";
	// 	}
	// 	// 给原型对象添加属性(一般都是方法)
	// 	Box.prototype.run = function(){
	// 		console.log(this.userName)
	// 	}
	// 	// 要生成构造函数的实例对象box
	// 	const obj = new Box();
	// 	console.log(obj)
	// 	obj.run();
	// }
</script>
</html>